package com.bfxy.springcloud.service;

import org.springframework.remoting.RemoteAccessException;
import org.springframework.retry.annotation.Backoff;
import org.springframework.retry.annotation.Recover;
import org.springframework.retry.annotation.Retryable;

public class UserService {

	// spring原生的 retry 
	
	//需要进行重试的方法
	@Retryable(value = {RemoteAccessException.class}, //需要在捕获什么样的异常下 重试该方法
				maxAttempts = 3,		//重试的次数
				backoff = @Backoff(delay = 4000,   //重试间隔4秒
				multiplier = 1)      // 线程数 1
				)
	public void call() throws Exception{
		System.err.println("do something....");
		throw new RemoteAccessException("RPC 调用异常");
	}
	
	// 这是降级策略
	@Recover
	public void rec(RemoteAccessException e) {
		System.err.println(" 最终处理的结果是 ： "+e.getMessage());
	}
	
	
}
